<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>Class Hierarchy</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th bgcolor="#70b0f0" class="navbar-select"
          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://code.google.com/p/modbus-tk/">Modbus Test Kit</a></th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">&nbsp;</td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="class-tree.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<center><b>
 [ <a href="module-tree.html">Module Hierarchy</a>
 | <a href="class-tree.html">Class Hierarchy</a> ]
</b></center><br />
<h1 class="epydoc">Class Hierarchy</h1>
<ul class="nomargin-top">
    <li> <strong class="uidlink">SocketServer.BaseRequestHandler</strong>:
      <em class="summary">Base class for request handler classes.</em>
    <ul>
    <li> <strong class="uidlink"><a href="modbus_tk.simulator.RpcHandler-class.html">modbus_tk.simulator.RpcHandler</a></strong>:
      <em class="summary">An instance of this class is created every time an RPC call is 
        received by the server</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.Databank-class.html">modbus_tk.modbus.Databank</a></strong>:
      <em class="summary">A databank is a shared place containing the data of all slaves</em>
    </li>
    <li> <strong class="uidlink">logging.Filterer</strong>:
      <em class="summary">A base class for loggers and handlers which allows them to share 
        common code.</em>
    <ul>
    <li> <strong class="uidlink">logging.Handler</strong>:
      <em class="summary">Handler instances dispatch logging events to specific destinations.</em>
    <ul>
    <li> <strong class="uidlink"><a href="modbus_tk.utils.ConsoleHandler-class.html">modbus_tk.utils.ConsoleHandler</a></strong>:
      <em class="summary">This class is a logger handler.</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.utils.DummyHandler-class.html">modbus_tk.utils.DummyHandler</a></strong>:
      <em class="summary">This class is a logger handler.</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.utils.LogitHandler-class.html">modbus_tk.utils.LogitHandler</a></strong>:
      <em class="summary">This class is a logger handler.</em>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.Master-class.html">modbus_tk.modbus.Master</a></strong>:
      <em class="summary">This class implements the Modbus Application protocol for a master 
        To be subclassed with a class implementing the MAC layer</em>
    <ul>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus_rtu.RtuMaster-class.html">modbus_tk.modbus_rtu.RtuMaster</a></strong>:
      <em class="summary">Subclass of Master.</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus_tcp.TcpMaster-class.html">modbus_tk.modbus_tcp.TcpMaster</a></strong>:
      <em class="summary">Subclass of Master.</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.ModbusBlock-class.html">modbus_tk.modbus.ModbusBlock</a></strong>:
      <em class="summary">This class represents the values for a range of addresses</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.Query-class.html">modbus_tk.modbus.Query</a></strong>:
      <em class="summary">Interface to be implemented in subclass for every specific modbus 
        MAC layer</em>
    <ul>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus_rtu.RtuQuery-class.html">modbus_tk.modbus_rtu.RtuQuery</a></strong>:
      <em class="summary">Subclass of a Query.</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus_tcp.TcpQuery-class.html">modbus_tk.modbus_tcp.TcpQuery</a></strong>:
      <em class="summary">Subclass of a Query.</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.Server-class.html">modbus_tk.modbus.Server</a></strong>:
      <em class="summary">This class owns several slaves and defines an interface to be 
        implemented for a TCP or RTU server</em>
    <ul>
    <li> <strong class="uidlink"><a href="modbus_tk.simulator.CompositeServer-class.html">modbus_tk.simulator.CompositeServer</a></strong>:
      <em class="summary">make possible to have several servers sharing the same databank</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus_rtu.RtuServer-class.html">modbus_tk.modbus_rtu.RtuServer</a></strong>:
      <em class="summary">This class implements a simple and mono-threaded modbus rtu server</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus_tcp.TcpServer-class.html">modbus_tk.modbus_tcp.TcpServer</a></strong>:
      <em class="summary">This class implements a simple and mono-threaded modbus tcp server</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.simulator.Simulator-class.html">modbus_tk.simulator.Simulator</a></strong>:
      <em class="summary">The main class of the app in charge of running everything</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.simulator_rpc_client.SimulatorRpcClient-class.html">modbus_tk.simulator_rpc_client.SimulatorRpcClient</a></strong>:
      <em class="summary">Make possible to send command to the modbus_tk.Simulator thanks to 
        Remote Process Call</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.Slave-class.html">modbus_tk.modbus.Slave</a></strong>:
      <em class="summary">This class define a modbus slave which is in charge of making the 
        action asked by a modbus query</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus_tcp.TcpMbap-class.html">modbus_tk.modbus_tcp.TcpMbap</a></strong>:
      <em class="summary">Defines the information added by the Modbus TCP layer</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.utils.WorkerThread-class.html">modbus_tk.utils.WorkerThread</a></strong>:
      <em class="summary">A thread which is running an almost-ever loop It can be stopped by 
        calling the stop function</em>
    </li>
    <li> <strong class="uidlink">object</strong>:
      <em class="summary">The most base type</em>
    <ul>
    <li> <strong class="uidlink">exceptions.BaseException</strong>:
      <em class="summary">Common base class for all exceptions</em>
    <ul>
    <li> <strong class="uidlink">exceptions.Exception</strong>:
      <em class="summary">Common base class for all non-exit exceptions.</em>
    <ul>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.DuplicatedKeyError-class.html">modbus_tk.modbus.DuplicatedKeyError</a></strong>:
      <em class="summary">Exception raised when trying to add an object with a key that is 
        already used for another object</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.InvalidArgumentError-class.html">modbus_tk.modbus.InvalidArgumentError</a></strong>:
      <em class="summary">Exception raised when one argument of a function doesn't meet what 
        is expected</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.InvalidModbusBlockError-class.html">modbus_tk.modbus.InvalidModbusBlockError</a></strong>:
      <em class="summary">Exception raised when a modbus block is not valid</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.MissingKeyError-class.html">modbus_tk.modbus.MissingKeyError</a></strong>:
      <em class="summary">Exception raised when trying to get an object with a key that 
        doesn't exist</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.ModbusError-class.html">modbus_tk.modbus.ModbusError</a></strong>:
      <em class="summary">Exception raised when the modbus slave returns an error</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.ModbusFunctionNotSupportedError-class.html">modbus_tk.modbus.ModbusFunctionNotSupportedError</a></strong>:
      <em class="summary">Exception raised when calling a modbus function not supported by 
        modbus_tk</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus_tcp.ModbusInvalidMbapError-class.html">modbus_tk.modbus_tcp.ModbusInvalidMbapError</a></strong>:
      <em class="summary">Exception raised when the modbus TCP header doesn't correspond to 
        what is expected</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.ModbusInvalidRequestError-class.html">modbus_tk.modbus.ModbusInvalidRequestError</a></strong>:
      <em class="summary">Exception raised when the request by the master doesn't fit with 
        the expected format</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.ModbusInvalidResponseError-class.html">modbus_tk.modbus.ModbusInvalidResponseError</a></strong>:
      <em class="summary">Exception raised when the response sent by the slave doesn't fit 
        with the expected format</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.ModbusNotConnectedError-class.html">modbus_tk.modbus.ModbusNotConnectedError</a></strong>:
      <em class="summary">Exception raised when the master is not connected to the slave</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.OutOfModbusBlockError-class.html">modbus_tk.modbus.OutOfModbusBlockError</a></strong>:
      <em class="summary">Exception raised when accessing out of a modbus block</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.modbus.OverlapModbusBlockError-class.html">modbus_tk.modbus.OverlapModbusBlockError</a></strong>:
      <em class="summary">Exception raised when adding modbus block on a memory address range
        already in use</em>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink">threading._Verbose</strong>
    <ul>
    <li> <strong class="uidlink">threading.Thread</strong>
    <ul>
    <li> <strong class="uidlink"><a href="modbus_tk.simulator.ConsoleInterface-class.html">modbus_tk.simulator.ConsoleInterface</a></strong>:
      <em class="summary">Manage user actions from the console</em>
    </li>
    <li> <strong class="uidlink"><a href="modbus_tk.simulator.RpcInterface-class.html">modbus_tk.simulator.RpcInterface</a></strong>:
      <em class="summary">Manage RPC call over TCP/IP thanks to the SocketServer module</em>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    </ul>
    </li>
</ul>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th bgcolor="#70b0f0" class="navbar-select"
          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://code.google.com/p/modbus-tk/">Modbus Test Kit</a></th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0.1 on Wed May 26 17:43:06 2010
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>
